Methods and devices for heart rate controlling drones

ABSTRACT

A method for controlling a drone including performing operations on a processor configured to control location of the drone are described. The operations on the processor include receiving heart rate messages from a remote device carried by a user, where each heart rate message includes heart rate information of the user, and receiving location messages from the remote device carried by the user, where each location message includes location information of the user. The method includes predicting a future location of the user based on the heart rate messages and the location messages, generating a target location to which the drone is to be moved based on the future location of the user, and commanding the drone to move to the target location. Related devices are disclosed.

BACKGROUND

The present inventive concepts generally relate to controlling a drone.

Running is a global trend that is popular as an exercise routine toimprove health, stamina, and general well being of individuals. Amulti-billion dollar industry related to running has developed thatincludes shoes, clothes, wearable devices, fitness tracking devices,apps, etc. In parallel, an industry related to drones has developed.Drones may be an integral part of the future Internet of Things (IoT)enabled world that assist individuals with tasks such as monitoring,filming, cleaning, repairs, and security. These two industries, namelyrunning and drones, may be combined such that drones may be used toimprove the experiences of runners in a variety of settings.

SUMMARY

Some embodiments of the present disclosure are directed to a method ofcontrolling a drone by performing various operations on a processorconfigured to control location of the drone. These operations mayinclude receiving a plurality of heart rate messages from a remotedevice carried by a user, each heart rate message of the plurality ofheart rate messages including heart rate information of the user, and/orreceiving a plurality of location messages from the remote devicecarried by the user, each location message of the plurality of locationmessages including location information of the user. The operations onthe processor may include predicting a future location of the user basedon the heart rate messages and the location messages, generating atarget location to which the drone is to be moved based on the futurelocation of the user, and/or commanding the drone to move to the targetlocation.

According to various embodiments, predicting the future location of theuser based on the heart rate messages and the location messages mayinclude predicting the future location of the user based on differencesin the heart rate information in at least two of the heart rate messagesand differences in the location information in at least two of thelocation messages. Predicting the future location of the user mayinclude predicting the future location of the user based on a pace ofthe user. Generating a target location to which the drone is to be movedmay include generating the target location based on the pace of theuser.

According to various embodiments, the operations on the processor mayinclude determining the pace of the user based on recorded historicalmeasurements of the user's pace over defined time intervals within athreshold distance of a present location of the user. The operations mayinclude determining the pace of the user based on a mathematicalcombination of heart rates indicated by at least two of the plurality ofheart rate messages that were previously received. Operations mayinclude scaling the pace of the user by a weighting factor defined basedon whether the heart rates have increased or decreased over a definedinterval.

According to various embodiments, the operations on the processor mayinclude receiving environment information associated with the locationinformation of the user, and/or determining an adjusted pace of the userbased on the environment information and the pace of the user.Predicting the future location of the user further may includepredicting the future location of the user based on the adjusted pace.The environment information may include weather conditions, terraininformation, geographical features, and/or a location of another user.The environment information may indicate presence of persons in aproximity of the user based on detecting radio frequency signalsreceived from devices carried by the persons. The method may includescaling the adjusted pace of the user by a weighting factor in responseto determining the presence of persons in the proximity of the user.

According to various embodiments, the operations on the processor mayinclude determining, based on the differences in the heart rateinformation, that the user is maintaining a steady heart rate,determining, based on the differences in the location information, thatthe user is stationary, and/or controlling the location of the drone tobe stationary based on the determining that the user is maintaining asteady heart rate and the determining that the user is stationary. Theoperations may include determining, based on the differences in theheart rate information, that the user is accelerating or decelerating,predicting, based on the determining that the user is accelerating ordecelerating, the future location of the user, and/or controlling aspeed of the drone based on the determining that the user isaccelerating or decelerating and the predicting the future location ofthe user. In some embodiments, determining, based on the differences inthe heart rate information, that the user is accelerating ordecelerating may include determining that the user is accelerating basedon a first heart rate information of one of the plurality of heart ratemessages being greater than a second heart rate information of aprevious one of the plurality of heart rate messages, and/or determiningthat the user is decelerating based on the first heart rate informationbeing less than the second heart rate information. The controlling thespeed of the drone may be based on the determining that the user isaccelerating or decelerating by performing operations includingincreasing the speed of the drone as the drone travels to the futurelocation of the user that was predicted, in response to the determiningthat the user is accelerating, and/or decreasing the speed of the droneas the drone travels to the future location of the user that waspredicted, in response to the determining that the user is decelerating.

According to various embodiments, the operations may include providingan input to a camera associated with the drone, in response to thepredicting the future location of the user based on the differences inthe heart rate information and the differences in the locationinformation. The method may include controlling a zoom of the camera, inresponse to the predicting the future location of the user based on thedifferences in the heart rate information and the differences in thelocation information. Controlling the zoom of the camera may includedetermining, based on differences in the heart rate information in atleast two of the heart rate messages, that the user is accelerating ordecelerating, decreasing the zoom of the camera responsive todetermining that the user is accelerating, and/or increasing the zoom ofthe camera responsive to determining that the user is decelerating.

According to various embodiments, the operations may include adjusting afield of view of the camera, in response to predicting the futurelocation of the user based on the differences in the heart rateinformation and the differences in the location information. Adjustingthe field of view of the camera further may include determining, basedon differences in the heart rate information in at least two of theheart rate messages, that the user is accelerating or decelerating,increasing the field of view of the camera responsive to determiningthat the user is accelerating, and/or decreasing the field of view ofthe camera responsive to determining that the user is decelerating.Controlling the location of the drone may include providing informationrelated to the altitude, speed, yaw, roll, pitch, and/or heading of thedrone.

Other methods and devices, according to embodiments of the presentdisclosure will be or become apparent to one with skill in the art uponreview of the following drawings and detailed description. It isintended that all such methods and devices be included within thisdescription, be within the scope of the present inventive subjectmatter, and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

Other features of embodiments will be more readily understood from thefollowing detailed description of specific embodiments thereof when readin conjunction with the accompanying drawings, in which:

FIG. 1 illustrates a runner guided by a drone in accordance with someembodiments of the present disclosure.

FIGS. 2 to 19 are flowcharts of operations for controlling a drone inaccordance with some embodiments of the present disclosure.

FIG. 20 is a block diagram of a device configured to perform operationsaccording to the flowcharts of FIGS. 2 to 19, according to someembodiments of the present disclosure.

FIG. 21 is a block diagram of a computer readable program code forperforming operations according to the flowcharts of FIGS. 2 to 19,according to some embodiments of the present disclosure.

DETAILED DESCRIPTION

Various embodiments will be described more fully hereinafter withreference to the accompanying drawings. Other embodiments may take manydifferent forms and should not be construed as limited to theembodiments set forth herein. Like numbers refer to like elementsthroughout. Numerous specific details are set forth in order to providea thorough understanding of embodiments of the present inventiveconcepts. However, it will be understood by those skilled in the artthat the present invention may be practiced without these specificdetails. In other instances, well-known methods, procedures, componentsand circuits have not been described in detail so as not to obscure thepresent invention. It is intended that all embodiments disclosed hereincan be implemented separately or combined in any way and/or combination.

As noted above, running is a popular leisure activity for activeindividuals who seek to improve their health. Maintaining a good paceand/or maintaining a particular heart rate are goals of many runners.Drones may be able to assist runners improve their experience. Variousembodiments described herein may arise from a recognition for a need toimprove the experience of runners using drones to provide guidanceregarding pacing, direction, filming, etc. The location and/or heartrate of the runner may be used to control the location of the drone suchthat the drone moves to a position suitable to the runner.

Referring now to FIG. 1, a runner (i.e. user) 102 is illustrated in viewof a drone 101 that assists and/or guides the runner. The runner 102 maybe carrying a remote device 103 that is remote from the drone 101. Theremote device 103 may measure the heart rate of the user 102 and/or maydetermine the location of the user by use of GPS information. Althoughillustrated as a watch-like device worn on the wrist of the user 102,the remote device 103 may be part of or in communication with a mobiledevice 104 carried in the pocket of the user, on a belt clip, or in anarmband. In some embodiments, the mobile device 104 may perform thefunctions described herein. The remote device 103 may also include achest strap worn by the user 102 for accurate pulse measurements. Insome embodiments, the remote device 103 may include a separate pulsemonitoring device that is separate from a location tracking deviceassociated with the user 102. In some embodiments, the pulse monitordevice may be co-located with the drone 101 and may be configured toremotely measure the pulse using an infrared (IR) camera and/or byanalyzing color changes or motion changes related to the pulse of theuser 102.

Referring to FIG. 2, a flowchart of operations that may be performed tocontrol the drone 101 of FIG. 1 is illustrated. These operations may beexecuted by a processor in the remote device 103 associated with theuser, another device associated with the user, and/or by a processor inthe drone 101. In some embodiments, these operations may be performed byan application in the remote device 103 and/or in an associated mobiledevice 104 carried by the user. Resulting information regarding a targetlocation may be communicated to the drone 101 by a wireless link fromthe remote device 103 and/or mobile device 104 of FIG. 1. As illustratedin FIG. 2, at block 201, a plurality of heart rate messages may bereceived by a remote device 103 and/or a mobile device 104 carried bythe user 102. A plurality of location messages may be received from theremote device 103 and/or mobile device 104 of FIG. 1 at block 202. Thelocation information and the heart rate information may be in a singlemessage or in different messages, in various embodiments. Althoughdiscussed herein in the context of heart rate messages and/or locationmessages, heart rate information and/or location information may bereceived in any form of communication from the remote device 103 and/ora mobile device 104 carried by the user 102.

Still referring to FIG. 2, at block 203, a future location of the usermay be predicted based on the heart rate messages and the locationmessages. A target location to which the drone is to be moved may begenerated at block 204, based on the future location of the user. Atblock 205, the drone may be commanded to move to the target locationthat was generated. Commanding the drone to move to the target locationmay include generating information related to the altitude, speed, yaw,roll, pitch, and/or heading to which the drone is to reposition.

Although the discussion herein is based on, for example, control of adrone based on heart rate information, other measurements of physicalperformance may be used in addition to, or in lieu of, the heart ratemeasurements. For example, heart rate variability, blood pressure, bloodoxygen level, breathing rate, pulse, perspiration, hemoglobin level,electromyography (EMG), electrodermal activity (EDA), skin conductance,galvanic skin response (GSR), electrodermal response (EDR),psychogalvanic reflex (PGR), skin conductance response (SCR), skinconductance level (SCL), and/or other physiological measurements may beused to control the drone. Sensors for brain activity related toexercise performance and/or motivation such as electroencephalogram(EEG), functional magnetic resonance imaging or functional MRI (fMRI),Electrocorticography (ECoG), or intracranial electroencephalography(iEEG), diffusion MRI (dMRI), and/or near-infrared spectroscopy (NIRS)may be used to control the drone.

Referring now to FIG. 3, the future location of the user may bepredicted, based on differences in the heart rate information in atleast two of the heart rate messages and/or differences in the locationinformation in at least two of the location messages. For example, theheart rate in a recent heart rate message N may be compared to the heartrate in a previous message N−1. Similar comparisons may be made withlocation information in location messages N and N−1. The presentinventive concepts may be extended to the heart rate at N−2, N−3, etc.Based on these two or more samples of the heart rate of the user and/orthe location of the user, a pace of the user may be determined. Althoughconsecutive messages N and N−1 are described as an example, any twomessages with heart rate and/or location information may be used fordetermine the differences. In some embodiments, a targeted pace may beset as desired by the user and used for predicting the future locationof the user.

Now referring to FIG. 4, based on two or more samples of the heart rateand/or location of the user, the future location of the user may bepredicted based on the pace of the user, at block 401. Referring to FIG.5, the target location may be generated based on the pace of the user,at block 501. The target location may be a location to which the droneis to move such that the user may follow the drone to maintain a presentpace or change to a target pace. In some embodiments, the drone may moveto a location in order to increase or decrease the heart rate of theuser, based on an optimum training pace of the user or based on a goalof the user. The target location may be determined to provide a suitableview from a camera associated with the drone for purposes of filming.

Referring now to FIG. 6, based on recorded historical measurements ofthe user's pace over defined time intervals, the pace of the user may bedetermined, at block 601. The pace may be determined based on two ormore time intervals within which a user travels at least a thresholddistance from the present location of the user. In some embodiments, ahistorical pace in a particular geographic region may be used to set atarget pace that the user strives to achieve. Referring now to FIG. 7,the pace of the user may be determined based on a mathematicalcombination of heart rates indicated by at least two of the plurality ofheart rate messages that were previously received, at block 701. Themathematical combination of heart rates may include averaging two ormore heart rate measurements, removing outlier heart rate values, and/ordetermining a mode of a plurality of heart rate values.

Referring now to FIG. 8, the pace of the user may be scaled by aweighting factor that is defined based on whether the heart rates haveincreased or decreased over a defined time interval, at block 801. Inother words, the pace of the user may be determined to have acceleratedby determining that the heart rates have increased over a defined timeinterval. Similarly, the peace of the user may be determined to havedecelerated in determining that the heart rates have decreased over adefined time interval. The pace of the user may be scaled upward by aweighting factor after a threshold number of increased heart rate valuesare received. The pace of the user may scaled downward by a weightingfactor after a threshold number of decreased heart rate values arereceived.

Referring now to FIG. 9, environment information associated with thelocation information of the user may be received, at block 901. At block902, an adjusted pace of the user may be determined based on theenvironment information and/or the pace of the user. The future locationmay be predicted based on the adjusted pace of the user. The environmentinformation may include weather conditions, terrain information,geographical features, and/or the location of one or more other users.For example, if weather information for the location of the userindicates that it is raining, the adjusted pace of the user may bereduced to take into account difficulty in running on a wet surface,poorer visibility, and/or an added weight of wet clothes. In someembodiments, geographical features such as rocky or sandy runningterrain may be determined and use as input to a computation to affectthe adjusted pace of the user since these surfaces may offer poorertraction/footing for the user. Other geographical features such as aparking lot may provide a lot of roadblocks for the runner when theparking lot has many cars, slowing the pace. On the other hand, the dayof the week or the time of day may also be taken into account. Forexample, a parking lot may be almost full during business hours onweekdays but may be almost completely empty on a Sunday. The pace of therunner may be adjusted based on information related to the time of dayand/or day of the week in conjunction with the heart rate information.

According to various embodiments, once the heart rate is obtained, itmay be determined if the heart rate should be increased, decreased,and/or maintained at the current level. The environment of the user maybe analyzed as previously discussed. A user's heading may be determinedbased on the current location/heading of the user, a predetermined routefor the user, and/or based on a probability that the user will followthe predetermined route. The probability that the user will follow thepredetermined route may be affected by factors related to theenvironment information. The drone may be commanded to increase speed inorder to increase the user's heart rate, maintain a current speed tokeep a current pace and/or heart rate, and/or decrease speed in order todecrease the heart rate. The drone may be commanded to decrease speedbased on environment information such as, for example, if a hill isapproaching but the heart rate of the user needs to be maintained.

Referring now to FIG. 10, the environment information may indicate thepresence of persons in a proximity of the user based on detecting radiofrequency signals received by the mobile device 104 from devices carriedby the other persons. In some embodiments, an indication of presence ofpersons in the proximity of the user may be received from a network. Adensity of other users may indicate runners in a race or a highpedestrian traffic area. The adjusted pace of the user may be scaled bya weighting factor in response to determining at least a thresholdnumber of mobile devices from which RF signals are detected in theproximity of the user, at block 1001.

In some embodiments, a traffic light or crosswalk may be in the path ofthe runner. Referring now to FIG. 11, based on the differences in theheart rate information, it may be determined that the user ismaintaining a steady heart rate, at block 1101. Based on differentsamples of location information, it may be determined that the user isstationary, at block 1102. For example, a runner may be at a trafficlight but is jogging in place to maintain a steady heart rate. At block1103, the location of the drone may be controlled to be stationary basedon determining that the user is maintaining a steady heart rate anddetermining that the user is stationary. The drone may be instructed tomove once it is determined that the user is no longer stationary.

Heart rate and/or location information may be used to determine that arunner is accelerating or decelerating. Acceleration and decelerationmay be due to hills and/or inclines/declines in the running course.Acceleration and deceleration of the heart rate may occur due to changesin the energy level of the runner at different points during the run.Referring now to FIG. 12, based on the differences in the heart rateinformation, it may be determined that the user is accelerating ordecelerating, at block 1201. The future location of the user may beestimated based on the recognition that the user is accelerating ordecelerating, at block 1202. The speed of the drone may be controlledbased on the determination that the user is accelerating or deceleratingand the predicted future location of the user, at block 1203.

Referring now to FIG. 13, determining that the user is accelerating ordecelerating based on the differences in the heart rate information mayinclude determining that the user is accelerating based on a heart rateinformation of a given heart rate message being greater than the heartrate information of a previous one or more of the heart rate messages,at block 1301. The user may be decelerating if it is determined that theheart rate information of a given heart rate message is less than theheart rate information of a previous one or more of the heart ratemessages, at block 1302.

Referring now to FIG. 14, the speed of the drone may be controlled basedon the determining that the user is accelerating or decelerating. Thespeed of the drone may be increased as the drone travels to the futurelocation of the user that was predicted, if it is determined that theuser is accelerating, at block 1401. The speed of the drone may bedecreased as the drone travels to the future location of the user thatwas predicted, if it is determined that the user is decelerating, atblock 1402.

The drone may be controlled to move smoothly, controlled to maintain adefined distance and/or azimuth angle relative to the user bycontrolling the drone based on the heart rate. For example, the user canbe expected to be able to have greater likelihood of high accelerationin speed when the user's heart rate is below a defined threshold. Incontrast, the user can be expected to have a greater likelihood ofdeceleration in speed when the user's heart rate is above a definedthreshold. In some embodiments, upper and/or lower threshold heart ratevalues may be defined in order to command the drone to increase ordecrease distance from the user. If a heart rate measurement is above anupper threshold heart rate, the drone may be commanded to decreasedistance between the user and the drone since it is anticipated that theuser has increased speed but will not be able to sustain the higherspeed and will soon decelerate. If a heart rate measurement is below alower threshold heart rate, the drone may be commanded to increasedistance between the user and the drone since it is anticipated that theuser has decreased speed and will have reserve energy to be able toaccelerate in the near future.

In some embodiments, a camera associated with the drone may becontrolled based of the heart rate of the user. Referring now to FIG.15, an input to a camera associated with the drone may be provided, inresponse to predicting the future location of the user based on thedifferences in the heart rate information and/or the differences in thelocation information, at block 1501. Referring now to FIG. 16, a zoom ofthe camera may be controlled, in response to predicting the futurelocation of the user based on the differences in the heart rateinformation and/or the differences in the location information, at block1601. Referring now to FIG. 17, the zoom of the camera may be controlledto maximize the view of the runner. Based on differences in the heartrate information in at least two of the heart rate messages, it may bedetermined that the user is accelerating or decelerating, at block 1701.The zoom of the camera may be decreased, if the user is accelerating, atblock 1702. The zoom of the camera may be increased, if the user isdecelerating, at block 1703. In other words, if the runner is slowingdown, a closer view of the runner may be possible by adjusting the zoomof the camera.

In some embodiments, the field of view of a camera associated with thedrone may be adjusted based of the heart rate of the user. The field ofview, also referred to as “angle of view (AOV)”, describes the angularextent of a given scene that is imaged by the camera. Referring now toFIG. 18, the field of view of the camera may be adjusted, in response tothe predicting the future location of the user based on the differencesin the heart rate information and/or the differences in the locationinformation, at block 1801. Referring now to FIG. 19, adjusting thefield of view of the camera may include determining, based ondifferences in the heart rate information in at least two of the heartrate messages, that the user is accelerating or decelerating, at block1901. The field of view of the camera may be increased if the user isaccelerating, at block 1902. The field of view of the camera may bedecreased if the user is decelerating, at block 1903.

As discussed herein, the heart rate allows prediction of how quickly theuser may speed up. The drone can be repositioned to allow the user tostay within the field of view of the camera if the predicted speed-upoccurs. Due to the inaccuracy of determining GPS location by mobiledevices over small distances (for example, 15 feet), controlling a dronebased on GPS location alone can lead to erratic control movements andresult in the drone not being properly positioned to provide a targetdistance and/or azimuth angle relative to the direction of movement ofthe user. When the drone is photographing or capturing video of theuser, there is a risk that the user will leave the field of view of thecamera. Moreover, erratic control of the drone can result in undesirableerratic movement of the camera. Embodiments of the present disclosureuse the heart rate of the person to predict that the person is likely toaccelerate or decelerate in order to improve control of the drone.

FIG. 20 is a block diagram of a device 2000, for use in conjunction withdrone 101 of FIG. 1, that is configured according to one or moreembodiments disclosed herein. The device 2000 can include a transceiver2030, a network interface 2020, a processor circuit 2002, and a memorycircuit 2010 containing computer readable program code 2012.

The transceiver 2030 is configured to communicate with the drone 101 ofFIG. 1 using one or more of the radio access technologies. The processorcircuit 2002 may include one or more data processing circuits, such as ageneral purpose and/or special purpose processor, e.g., microprocessorand/or digital signal processor, that may be collocated or distributedacross one or more networks. The processor circuit 2002 (also referredto as a processor) is configured to execute the computer readableprogram code 2012 in the memory 2010 to perform at least some of theoperations and methods of described herein as being performed by thedevice 2000. For example, processor 2002 may be configured to performoperations discussed above with respect to FIGS. 2-19. The networkinterface 2020 communicates with other devices 2000, a drone 101, aremote device 103, and/or a mobile device 104 carried by the user 102 ofFIG. 1.

FIG. 21 illustrates the computer readable program code 2012 in moredetail. In particular, the computer readable program code 2012 includesa receiving heart rate module 2112, a receiving location module 2116, apredicting future location module 2120, a generating target locationmodule 2124, and/or a commanding drone module 2128 for commanding thedrone 101 of FIG. 1 to move to the target location.

Further Definitions and Embodiments

In the above-description of various embodiments of the present inventiveconcepts, aspects of the present inventive concepts may be illustratedand described herein in any of a number of patentable classes orcontexts including any new and useful process, machine, manufacture, orcomposition of matter, or any new and useful improvement thereof.Accordingly, aspects of the present inventive concepts may beimplemented in entirely hardware, entirely software (including firmware,resident software, micro-code, etc.) or combining software and hardwareimplementation that may all generally be referred to herein as a“circuit,” “module,” “component,” or “system.” Furthermore, aspects ofthe present inventive concepts may take the form of a computer programproduct comprising one or more computer readable media having computerreadable program code embodied thereon.

Any combination of one or more computer readable media may be used. Thecomputer readable media may be a computer readable signal medium or acomputer readable storage medium. A computer readable storage medium maybe, for example, but not limited to, an electronic, magnetic, optical,electromagnetic, or semiconductor system, apparatus, or device, or anysuitable combination of the foregoing. More specific examples (anon-exhaustive list) of the computer readable storage medium wouldinclude the following: a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an appropriateoptical fiber with a repeater, a portable compact disc read-only memory(CD-ROM), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer readable storage medium may be any tangible medium that cancontain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device. Program codeembodied on a computer readable signal medium may be transmitted usingany appropriate medium, including but not limited to wireless, wireline,optical fiber cable, RF, etc., or any suitable combination of theforegoing.

Computer program code for carrying out operations for aspects of thepresent inventive concepts may be written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#,VB.NET, Python, etc., conventional procedural programming languages,such as the “C” programming language, Visual Basic, Fortran 2003, Perl,COBOL 2002, PHP, ABAP, dynamic programming languages such as Python,Ruby and Groovy, or other programming languages. The program code mayexecute entirely on the device, partly on the device, as a stand-alonesoftware package, partly on the device and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the device through any type ofnetwork, including a local area network (LAN) or a wide area network(WAN), or the connection may be made to an external computer (forexample, through the Internet using an Internet Service Provider) or ina cloud computing environment or offered as a service such as a Softwareas a Service (SaaS).

Aspects of the present inventive concepts are described herein withreference to flowchart illustrations and/or block diagrams of methods,apparatus (device), and computer program products according toembodiments of the disclosure. It will be understood that each block ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmableinstruction execution apparatus, create a mechanism for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

These computer program instructions may also be stored in a computerreadable medium that when executed can direct a computer, otherprogrammable data processing apparatus, or other devices to function ina particular manner, such that the instructions when stored in thecomputer readable medium produce an article of manufacture includinginstructions which when executed, cause a computer to implement thefunction/act specified in the flowchart and/or block diagram block orblocks. The computer program instructions may also be loaded onto acomputer, other programmable instruction execution apparatus, or otherdevices to cause a series of operational steps to be performed on thecomputer, other programmable apparatus or other devices to produce acomputer implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The functions noted in the blocks may occur out of the order noted inthe Figures. For example, two blocks shown in succession may, in fact,be executed substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved. It will also be noted that each block of the block diagramsand/or flowchart illustration, and combinations of blocks in the blockdiagrams and/or flowchart illustration, can be implemented by specialpurpose hardware-based systems that perform the specified functions oracts, or combinations of special purpose hardware and computerinstructions.

It is to be understood that the terminology used herein is for thepurpose of describing particular embodiments only and is not intended tobe limiting to other embodiments. Unless otherwise defined, all terms(including technical and scientific terms) used herein have the samemeaning as commonly understood by one of ordinary skill in the art towhich this disclosure belongs. It will be further understood that terms,such as those defined in commonly used dictionaries, should beinterpreted as having a meaning that is consistent with their meaning inthe context of this specification and the relevant art and will not beinterpreted in an idealized or overly formal sense expressly so definedherein.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousaspects of the present inventive concepts. In this regard, each block inthe flowchart or block diagrams may represent a module, segment, orportion of code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the Figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

Spatially relative terms, such as “beneath,” “below,” “lower,” “above,”“upper”, “top”, “bottom” and the like, may be used herein for ease ofdescription to describe one element or feature's relationship to anotherelement(s) or feature(s) as illustrated in the figures. It will beunderstood that the spatially relative terms are intended to encompassdifferent orientations of the device in use or operation in addition tothe orientation depicted in the figures. For example, if the device inthe figures is turned over, elements described as “below” or “beneath”other elements or features would then be oriented “above” the otherelements or features. Thus, the exemplary term “below” can encompassboth an orientation of above and below. The device may be otherwiseoriented (rotated 90 degrees or at other orientations) and the spatiallyrelative descriptors used herein interpreted accordingly.

The terminology used herein is for the purpose of describing particularaspects only and is not intended to be limiting of the disclosure. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof. As used herein, the term “and/or”includes any and all combinations of one or more of the associatedlisted items. Like reference numbers signify like elements throughoutthe description of the Figures.

The corresponding structures, materials, acts, and equivalents of anymeans or step plus function elements in the claims below are intended toinclude any disclosed structure, material, or act for performing thefunction in combination with other claimed elements as specificallyclaimed. The description of the present inventive concepts has beenpresented for purposes of illustration and description, but is notintended to be exhaustive or limited to the disclosure in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art without departing from the scope and spiritof the disclosure. The aspects of the disclosure herein were chosen anddescribed in order to best explain the principles of the disclosure andthe practical application, and to enable others of ordinary skill in theart to understand the disclosure with various modifications as aresuited to the particular use contemplated.

In the drawings and specification, there have been disclosed typicalembodiments and, although specific terms are employed, they are used ina generic and descriptive sense only and not for purposes of limitation,the scope of the disclosure being set forth in the following claims.

The invention claimed is:
 1. A method of controlling a drone, the method comprising: performing operations as follows on a processor configured to control location of the drone: receiving a plurality of heart rate messages from a remote device carried by a user, each heart rate message of the plurality of heart rate messages comprising heart rate information of the user; receiving a plurality of location messages from the remote device carried by the user, each location message of the plurality of location messages comprising location information of the user; determining, based on the plurality of location messages, a current speed of the user; determining, based on the current speed of the user and based on the plurality of heart rate messages, a target speed of the drone; and commanding the drone to move at the target speed of the drone.
 2. The method of claim 1, wherein the determining the target speed of the drone comprises: determining the target speed of the drone based on differences in the heart rate information in at least two of the heart rate messages and based on the current speed.
 3. The method of claim 1, wherein the determining the target speed of the drone comprises: determining the pace of the user based on recorded historical measurements of the user's pace over defined time intervals within a threshold distance of a present location of the user; and determining the target speed of the drone based on the pace of the user.
 4. The method of claim 3, further comprising: scaling the pace of the user by a weighting factor based on a comparison of a heart rate indicated by at least one of the plurality of heart rate messages to a threshold heart rate.
 5. The method of claim 3, further comprising: scaling the pace of the user by a weighting factor defined based on whether the heart rates have increased or decreased over a defined time interval.
 6. The method of claim 3, further comprising: receiving environment information associated with the location information of the user; and determining an adjusted pace of the user based on the environment information and the pace of the user, wherein the determining the target speed of the drone further comprises determining the target speed of the drone based on the adjusted pace of the user.
 7. The method of claim 6, wherein the receiving the environment information comprises determining weather conditions, terrain information, geographical features, and/or a location of another user.
 8. The method of claim 6, wherein the environment information indicates presence of persons in a proximity of the user based on detecting radio frequency signals received from devices carried by the persons, the method further comprising: scaling the adjusted pace of the user by a weighting factor in response to determining the presence of persons in the proximity of the user.
 9. The method of claim 1, further comprising: determining, based on differences in the heart rate information in at least two of the heart rate messages, that the user is maintaining a steady heart rate; determining, based on the differences in the location information in at least two of the location messages, that the user is stationary; and controlling the target speed of the drone to be stationary based on the determining that the user is maintaining a steady heart rate and the determining that the user is stationary.
 10. The method of claim 1, further comprising: determining, based on the differences in the heart rate information in at least two of the heart rate messages, that the user is accelerating or decelerating; predicting, based on the determining that the user is accelerating or decelerating, a future speed of the user; and controlling the target speed of the drone based on the determining that the user is accelerating or decelerating and the future speed of the user that was predicted.
 11. The method of claim 1, further comprising: controlling a zoom of the camera, in response to the determining, the target speed of the drone.
 12. The method of claim 1, further comprising: adjusting a field of view of the camera, in response to the determining the target speed of the drone.
 13. A method of controlling a drone, the method comprising: performing operations as follows on a processor configured to control location of the drone: receiving a plurality of heart rate messages from a remote device carried by a user, each heart rate message of the plurality of heart rate messages comprising heart rate information of the user; receiving a plurality of location messages from the remote device carried by the user, each location message of the plurality of location messages comprising location information of the user; determining, based on the plurality of location messages, a current speed of the user; determining, based on the current speed of the user and based on the plurality of heart rate messages, a target speed of the drone; generating a target location to which the drone is to be moved based on the target speed of the drone; and commanding the drone to move to the target location.
 14. The method of claim 13, wherein the determining the target speed of the drone comprises determining the target speed of the drone based on a pace for the user determined based on recorded historical measurements of the user's pace over defined time intervals within a threshold distance of a present location of the user, and wherein the generating a target location to which the drone is to be moved comprises generating the target location based on the pace of the user.
 15. The method of claim 14, further comprising: receiving environment information associated with the location information of the user; and determining an adjusted pace of the user based on the environment information and the pace of the user, wherein the determining the target speed of the drone comprises determining the target speed of the drone based on the adjusted pace, and wherein the receiving the environment information comprises determining weather conditions, terrain information, geographical features, and/or a location of another user.
 16. The method of claim 13, further comprising: providing an input to a camera associated with the drone, in response to the generating the target location to which the drone is to be moved.
 17. The method of claim 13, further comprising: controlling a zoom of the camera, in response to the generating the target location to which the drone is to be moved.
 18. The method of claim 17, wherein the controlling the zoom of the camera comprises: determining, based on differences in the heart rate information in at least two of the heart rate messages, that the user is accelerating or decelerating; decreasing the zoom of the camera responsive to determining that the user is accelerating; and increasing the zoom of the camera responsive to determining that the user is decelerating.
 19. The method of claim 13, further comprising: adjusting a field of view of the camera, in response to the generating the target location to which the drone is to be moved.
 20. A device for controlling a position of the drone, wherein the device comprises a processor configured to perform operations comprising: receiving a plurality of heart rate messages from a remote device carried by a user, each heart rate message of the plurality of heart rate messages comprising heart rate information of the user; receiving a plurality of location messages from the remote device carried by the user, each location message of the plurality of location messages comprising location information of the user; determining, based on the plurality of location messages, a current speed of the user; determining, based on the current speed of the user and based on the plurality of heart rate messages, a target speed of the drone; and commanding the drone to move at the target speed of the drone. 